由买买提看人间百态

topics

全部话题 - 话题: 正则表达式
首页 上页 1 2 3 4 5 6 (共6页)
e*******o
发帖数: 4654
1
^ 的意思是在\n 之后。 $的意思是在\n之前。
a\n\n\nb
a\n 不match:
\s* 吃掉\n\n,后面是b,不行,吐出一个\n,match1次,吐出n后,前是\n,后面\n,
又match 一次,一共match两次。
a\n\n\n\s\nb:
\s* 吃掉\n\n\s\n,后面是b,不行,吐出一个\n,match1次,吐出n后, 前面是\s, 不
行, 剩下的一个n不match。一共match一次。
水平比较次,不知道说清楚没有。
用这个
https://metacpan.org/pod/Regexp::Debugger
rxrx your_scripts.pl
然后 按n,可以看动态的看怎么匹配的。
x**n
发帖数: 1055
2
一看您的说话方式(吃-吐)就知道是大牛,谢谢指点:-)
z****e
发帖数: 54598
3
语言当然是java,我最擅长的还是java哈
第一种就是wwzz说的直接上api
第二种是正则表达式,这个我也不熟练
第三种我自己分步骤实现,有什么难的
实现题,怎么做都随便你,大不了说慢一点
总比做出来是错的强太多
我这不是还没10年的java经验么?
呵呵
o**o
发帖数: 3964
4
他就是听过正则表达式瞎掰掰
D*****r
发帖数: 6791
5
来自主题: Programming版 - Compiler
算吧,了解了之后,就知道compiler背着自己到底本质上在干什么,或者说知道自己到
底在干什么。
有些理论的东西,什么各种自动机啊,正则表达式啊,知道一下好像有帮助。
k*******3
发帖数: 1909
6
来自主题: Programming版 - perl 匹配问题
如果要匹配 数字-数字,并且两个数字相同。比如匹配
1-1
2-2
3-3
4-4
而不要匹配
1-2
3-4
5-9
如何写正则表达式?
n*******e
发帖数: 4894
7
replace \D with ""
这样应该可以吧
w***g
发帖数: 5958
8
grep -o '"id":[0-9]\+' | cut -f 2 -d ':'

要数
n*******e
发帖数: 4894
9
嗯,perl里用 =~ /^"id":(\d+)/应该就可以了,好久没用,快忘得差不多了
n*********u
发帖数: 1030
10
(?:"id"\:)\d+
h*d
发帖数: 214
11
come on,这个板上就没有人真正知道regex?还group, capture什么的,让我跌眼镜啊
e*******o
发帖数: 4654
12
有啥问题么?
h*d
发帖数: 214
13
问题就是需要用吗?LZ问的问题其实是很简单的例子
e*******o
发帖数: 4654
14
我只是跟楼主说,有个知识点他不知道,要看看。
简单的方法不是给出来了么。
w***g
发帖数: 5958
15
受教了,grep版本为
grep -P -o '(?<="id":)[0-9]+'
h*d
发帖数: 214
16
最简单写法,\d+
会有两个match,第一个就是lz要的
稍微复杂点,(?<="id"\:)\d+,就match第一组数字
e*******o
发帖数: 4654
17
至少你不知道Perl中regex 怎么用,所以在嘲笑别人的时候还是小心为妙。
h*d
发帖数: 214
18
对,我就是嘲笑那些说要用group的。perl中怎么用我不关心,不过肯定不需要group,
哈哈哈
e*******o
发帖数: 4654
19
井底之蛙
D***n
发帖数: 6804
20
有几个基本的东西你要看:
Computer architecture 计算机体系结构(不用看太懂,知道计算机大概怎么工作的就
行了)
语言方面,重点要看这本书:
Compilers: Principles, Techniques, and Tools
配合这本书有:
Python的PLY ( Python的Lex/Yacc)
C语言,特别要实践一下如何用C语言实现OOP
这个书里面详细地实现了正则表达式,特别有用。
一旦你了解这些语言具体在机器那里是怎么实现的,很多东西就很通透了。然后你就会
发现Python/C/C++是个桌面/服务器很好的组合:)
s***o
发帖数: 175
21
\/(.+?)\/(.+*)\/(.+*)
groups: \1 \2
s***o
发帖数: 175
22
sorry, 少打了个问号,应该是:
\/(.+?)\/(.+*?)\/.+*
e********2
发帖数: 495
23
int i = s.find('/');
int j = s.find('/');
return s.substr(i+1, j);
差不多这样。
e*******o
发帖数: 4654
24
Perl 中可以用split,
如果不用none-greedy 可以用 [^/]*
d******i
发帖数: 7160
25
来自主题: Programming版 - 正则表达式里括号的转义好乱
比如下面这个匹配电话号码 (123) 456-7890 的写法(lc接受的正确版):
grep '([0-9]\{3\}) [0-9]\{3\}-[0-9]\{4\}' file.txt
显然()和{}是本身默认为token,需要转义才做语义符的。
而[]是本身默认为语义符,需要转义才做token的。
为啥不能把语法统一了呢?
请过来人指教。
谢谢!
w**z
发帖数: 8232
26
来自主题: Programming版 - 正则表达式里括号的转义好乱
我每次都要看manual 才能写。
d******i
发帖数: 7160
27
来自主题: Programming版 - 正则表达式里括号的转义好乱
大哥,正是不想折腾才有OP的问题。
加P试了,没有啥区别啊。
还是一样的问题:转义的默认项不一致。
n******7
发帖数: 12463
28
来自主题: Programming版 - 正则表达式里括号的转义好乱
你到底试了没?
-> grep '([0-9]\{3\}) [0-9]\{3\}-[0-9]\{4\}' test
(123) 456-7890
-> grep -P '([0-9]\{3\}) [0-9]\{3\}-[0-9]\{4\}' test
-> grep -P '\([0-9]{3}\) [0-9]{3}-[0-9]{4}' test
(123) 456-7890
-> grep -P '\(\d{3}\) \d{3}-\d{4}' test
(123) 456-7890
不知道为啥,贴出来的backslash都没了,要修改才好
n******7
发帖数: 12463
29
来自主题: Programming版 - 正则表达式里括号的转义好乱
不好说那个标准,不过我只用perl的,减少记忆负担和错误
python的regexp跟perl的也一样
我记得哪里看到过一个不同版本的regexp语法对照表,vim用的是basic regular
expression
grep自己有一套,但是可以兼容其他几类,编程语言perl风格是主流
还好我不用很多regexp的东西,不然这种回字几种写法的事情要搞死人
d******i
发帖数: 7160
30
来自主题: Programming版 - 正则表达式里括号的转义好乱
多谢,之前没写对。
perl style的还是要清新些。
t*****n
发帖数: 4908
31
http://www.csdn.net/article/2015-08-28/2825572
简单讲,原文http://eax.me/cpp-will-never-die/是俄语,有人感兴趣,得到作者同意后,把它翻成英文。(译者:然后我再把它翻成中文。)
显而易见,这篇博文将会导致一场语言大圣战,所以,请思考两遍,确定你将会通过“
有建设性的辩论”的评论参与讨论后再开始阅读这篇文章。
再次说明原文是俄语:)
注意:进一步讲,我冒昧的认为Rust有意尝试创建一个快速并且安全的语言。毕竟,
Mozilla的人最初构思用它作为工具来开发一个浏览器引擎。如果它被证明是另外一个
仅仅安全的语言,那么我认为 它没有达成目标。那里有许多非常不同的安全语言供人
们选择和品味,如果Rust没有打算代替C++,那么:
为什么它需要包含一个不安全子集;
并且,为什么作者要抛弃Rust的轻量级进程?毕竟它们很方便,对吧?换句话说,
如果我假设错了,那么整件事情就没有讨论的意义了。
如有你碰巧偶尔逛逛linux.org.ru论坛,那么请被提醒到这篇文章没有触及为什么不喜
欢Rust的那10条纯技... 阅读全帖
N********n
发帖数: 8363
32

看考官奔着啥去的。如果就是要考编译原理基础这里的名堂多了。如果只是来个
简单正则表达式拆分然后糙快猛解析,你楼上那个可能就差不多了。
R*********4
发帖数: 293
33
来自主题: Programming版 - parsing file in node: js or python ?
我建议您学学正则表达式
不管js php c# Python 都支持
也就是regex
h**********c
发帖数: 4120
34
来自主题: Programming版 - 正则表达式的问题 (转载)
[a-zA-Z] a kind type sort of wild card
plus grouping,
should do
viewer discretion advised.
r*g
发帖数: 186
35
来自主题: Programming版 - 正则表达式的问题 (转载)
我在vim下会这样
/\c.*\(.\).*\1
能找出来
H**r
发帖数: 10015
36
来自主题: Programming版 - 正则表达式的问题 (转载)
不是加backreference吗?
H**r
发帖数: 10015
37
来自主题: Programming版 - 正则表达式的问题 (转载)
忽略大小写应该是wildcard+随便什么东西+backreference最后i(或者别的什么ignore
casesensitive)之类的吧?
具体的我也记不清了
h**********c
发帖数: 4120
38
来自主题: Programming版 - 正则表达式的问题 (转载)
cat test.txt | "egrep -i (.).*\1"
It should do the job.
You can read at least one character matching wild-card is repeated.
I can not figure out what the regular grammar would be for repetition. In
fact grep is an NFA, probably a push-down automaton.
If you can not write grammar rules, the language is not well defined,
possibly incomplete and leaving bug in programs.

ignore
w***g
发帖数: 5958
39
来自主题: Programming版 - 问个正则表达式的问题
如果我没有记错的话, 一般说来你这个要求regular expression 搞不定.
regular expression是Type-3 language, 你要的这个是
context-free language, 是type-2 language.
如果if永远像你说的这样嵌套两层的话还是可以写的.
c******n
发帖数: 16666
40
来自主题: Programming版 - 问个正则表达式的问题
我虽然也说过用regex来做html parser的笑话
但第一次知道 原来还有type2 type3这种

发帖数: 1
41
来自主题: Programming版 - 问个正则表达式的问题
if((?!if).)*else
如果考虑换行的话 用这个
if((?!if).|\s)*else

发帖数: 1
42
来自主题: Programming版 - 问个正则表达式的问题
if(((?!if).)*)else
if(((?!if).|\s)*)else
这个提取 group[1]
n*********u
发帖数: 1030
43
来自主题: Programming版 - 问个正则表达式的问题
for first match,
`if(.*?)else`
but nested stuff can get it wrong really easily.
e********2
发帖数: 495
44
来自主题: Programming版 - 问个正则表达式的问题
厉害,原来lookaround还可以这么玩。
d******c
发帖数: 2407
45
重点首先应该在DSL设计上,DSL设计不同,适合用来实现的语言就可以有很大不同,离
开DSL谈语言,相当于一次考虑两件事。
martin fowler在这方面写过很多文章。
https://martinfowler.com/dsl.html
看看他举得例子,regex,CSS,make, ant,哪个是“类似英语的一种标识法”?
和英语的相似性不是重点,适当的抽象才是重点。首先要找到最适合的抽象,所以正则
表达式定义了那么多东西,相当于特定的名词和动词。
a9
发帖数: 21638
46
来自主题: Programming版 - js regex的match是不是跟python不一样?
打回去重学正则表达式吧

”]
d******c
发帖数: 2407
47
这实际是data cleaning,就你举得例子来看,这个问题很难。
地址的标准化就很难,美国地址算是非常规律的了,但是地区性差异很大。我读过usps
关于地址的manual,很多东西一般人不知道。
- 有两个州用坐标,也就是在xy轴上划区,然后每个地址都带个这种坐标,比如Q5,C3
- NY的地址最头疼,因为数字街名简写了以后很多时候很难区分。
- 有许多地址只有当地人才能解析
一般的办法也就是用正则表达式,模糊匹配,全是经验性的。
至于后面什么北电的例子,这种缩写也不容易。
说起来这种问题是适合ML/DL处理的,问题是DL全靠数据,你有足够大的训练集吗?标
记好的数据?
d******c
发帖数: 2407
48
来自主题: Programming版 - 今天的学习成果
我提点不同意见
前两天刚有个讨论
https://news.ycombinator.com/item?id=16322277
那个原作者是生物信息的,数据量上去的很快,python的性能经常遇到瓶颈。
性能是很复杂的问题,一般人感觉python性能还可以,但是生物方面的数据量和任务和
一般人编程可能很不一样(对几十G的文本搞查找或者正则表达式)。
总有人说把关键部分用C,然后和python通讯,但混合编程坑很多,很繁琐
python在ML, DS的火跟太多人改行,太多人背景太杂有关,python上手快。
作为接口语言python肯定是可以的,但我觉得C本来就是你的一个竞争优势,能做到性
能上的优势是个很大的卖点,只要外部包装,性能不关键的地方用python就可以了。这
种划分不是混合编程,而是python只做接口外的东西。
g****t
发帖数: 31659
49
来自主题: Programming版 - 今天的学习成果
除了性能。Python做数值计算仍然有很多问题。
ML/AI做system level整合现在看来必须是python。
做稍微底层点的东西不可行。


: 我提点不同意见

: 前两天刚有个讨论

: https://news.ycombinator.com/item?id=16322277

: 那个原作者是生物信息的,数据量上去的很快,python的性能经常遇到瓶
颈。

: 性能是很复杂的问题,一般人感觉python性能还可以,但是生物方面的数
据量和
任务和

: 一般人编程可能很不一样(对几十G的文本搞查找或者正则表达式)。

: 总有人说把关键部分用C,然后和python通讯,但混合编程坑很多,很繁琐

: python在ML, DS的火跟太多人改行,太多人背景太杂有关,python上手快。

: 作为接口语言python肯定是可以的,但我觉得C本来就是你的一个竞争优
势,能
做到性

: 能上的优势是个很大的卖点,只要外部包装,性能不关键的地方用python
就可以
了。这

x****u
发帖数: 44466
50
用正则表达式处理json是非常危险的
首页 上页 1 2 3 4 5 6 (共6页)