我正在尝试以十进制匹配最后一组0.例如:In 9780.56120000 0000匹配.这个正则表达式:
(?<=\.\d{0,20})0*$
似乎在RegexBuddy中工作,但Java失败并出现以下错误:
后视模式匹配必须在索引15附近具有有界最大长度
谁能提供一些有关此问题的见解?
我现在正在学习正则表达式。我的要求很简单。这是我的正则表达式。
([0-9]*)(\.)([0-9]*)
Run Code Online (Sandbox Code Playgroud)
我的输入是这样的。
1.9
2.8
4.76
3
7.8
Run Code Online (Sandbox Code Playgroud)
我只想返回小数部分。我目前正在打印第三个捕获组 3 美元。输出是这样的。
9
8
76
3
8
Run Code Online (Sandbox Code Playgroud)
但我的预期输出是这样的。
9
8
76
8
Run Code Online (Sandbox Code Playgroud)
请告诉我如何实现这一目标。每当字符串不匹配时,我的 $3 都会返回整个字符串。我希望它返回 null 或任何其他默认值(如“0”)。是否可以使用环视来实现这一点?如果是这样,怎么办?
我正在尝试匹配逗号分隔的数字,但如果任何数字无效,请停止正则表达式并且根本不匹配。
这是一个应该匹配的例子
3123123213212,3123123263212,3173123213212
Run Code Online (Sandbox Code Playgroud)
此字符串不应匹配
3123123213212,3123123263212dad,3173123213212
Run Code Online (Sandbox Code Playgroud)
因此,至少有一个无效数字会导致不匹配的正则表达式。
我试过的是以下表达式
(?:(\d+)(?=\,|\s|$))+
Run Code Online (Sandbox Code Playgroud)
这是 Regex101 链接
https://regex101.com/r/JpuA5X/1
即使某些数字无效它也会匹配其他数字的问题,但这是不可接受的。
如何修改我的正则表达式以获得所需的结果?
谢谢。
更新
抱歉,我没有提到,我需要对每个数字进行分组。
我在文件中有一些数据,并且我正在使用这些数据Regex来获取单个元素并删除和标记\r\n之间的所有内容。<opening></closing>
但是,当我尝试elements单独选择时,最后,整个数据将被选为一组。
这是我的正则表达式:
(<([ph0-9figc]+)>)([a-zA-Z0-9äöüÄÖÜß[:punct:] \n\r\t])+(<\/\2>)
Run Code Online (Sandbox Code Playgroud)
输入数据样本
我正在使用一个正则表达式,它允许一个数字是带小数位的最大长度。
它应该允许最多 16 个数字和 3 个小数位,但是最多 16 个数字应该包括小数但不包括 . 特点。我试图和这个至今:^(?=^[\d\.].{0,16}$)[0-9]+(\.[0-9]{1,3})?$,这是接近但它允许17个单号,当它应该只接受16.如果我改变{0,16}到{0,15}它,然后打破了小数。
接受的值:
拒绝了:
提前致谢。
我有需要在管道之间匹配的文本.我试过了\|[^|]+\|,但似乎没有收集每一个.
|N/A|text123|text1235|Medium|1|Medium|test123|test456|test|test|test|http|tcp|
Run Code Online (Sandbox Code Playgroud) 在下面的XML片段中,当父节点为E1且元素PARVW等于AG时,我需要在变量中提取并存储NAME1的值.
对于上面的片段,答案是:soldtoid = W.
在此先感谢您的帮助.
我想匹配这样的短语:
但是如果它们是过去时,我不想匹配它们,这意味着例如应该排除包含单词 had 的任何内容:
稍后,我将添加其他过去时的词。
我试过这个正则表达式,但它仍然匹配“相同的问题”,即使前面有“有”这个词
((?:i\s)?(?:have\s)?(?<!had\s)(?:(?:the\s|a\s)?same\s(?:(?:problem|question|issue)|here)))
Run Code Online (Sandbox Code Playgroud)
https://regex101.com/r/Nvjtqj/1
为什么这个正则表达式仍然找到短语“相同问题”,即使它前面包含单词“had”?
我希望仅提取此“ =»”之后的数字,但我仍然保留其他一些文字:
[^»]*[\d{1,}]$
Run Code Online (Sandbox Code Playgroud)
> login as: LOGIN SERVER@00.00.00.000's password: Last login: Thu May 23
> 15:51:49 2019 from 00.00.00.000 CREER AUTANT DE REPERTOIRES SOUS
> /NAME/NAME/NAME QU'IL Y A DE COMMERCANTS GERES. LE NOM DOIT ETRE LE NO
> DE COMMERCANT. CREER ENSUITE SOUS CHACUN D'EUX UN REPERTOIRE NAME/
> <SERVER>ps -fu NAME | grep exe | echo «resultat=»`wc -l` «resultat=»14
> <SERVER>
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
regex ×9
c# ×2
perl ×2
regex-group ×2
java ×1
javascript ×1
pcre ×1
php ×1
preg-match ×1
regex-greedy ×1
uipath ×1