小编Wik*_*żew的帖子

正则表达式忽略下划线

我有一个正则表达式([-@.\/,':\w]*[\w])*,它匹配文本中的所有单词(包括像IBM这样的标点符号),但我想让它排除下划线,我似乎无法弄清楚如何做到这一点...我尝试添加^[_](例如(^[_][-@.\/,':\w]*[\w])*)但它只是将所有单词分解为字母.我想保留单词匹配,但我不希望在其中包含带下划线的单词,也不希望单词完全由下划线组成.

什么是正确的方法来做到这一点?

PS

  • 我的应用程序是用C#编写的(如果这有任何区别).
  • 我不能使用A-Za-z0-9因为我必须匹配单词而不管语言(可能是中文,俄文,日文,德文,英文).

更新
这是一个例子:

"IBM应该被解析为一个单词w_o_r_d!俄语也应该起作用:мплексисторическихсобытий."

比赛应该是:

I.B.M.  
should  
be  
parsed  
as  
one  
word  
Russian  
should  
work  
too  
??????  
????????????  
???????  
Run Code Online (Sandbox Code Playgroud)

请注意,w_o_r_d不应该匹配.

c# regex regex-negation

5
推荐指数
1
解决办法
2075
查看次数

从单词的开头和结尾删除非字母字符

我需要从单词的开头和结尾删除所有非字母字符,但如果它们出现在两个字母之间,请保留它们.

例如:

'123foo456' --> 'foo'
'2foo1c#BAR' --> 'foo1c#BAR'
Run Code Online (Sandbox Code Playgroud)

我尝试过使用re.sub(),但我无法编写正则表达式.

python regex

5
推荐指数
2
解决办法
4535
查看次数

捕获连字符正则表达式之间的单词

目前我有这个字符串

"RED-CURRENT_FORD-something.something"
Run Code Online (Sandbox Code Playgroud)

我需要捕捉大肆宣传之间的这个词.在这种情况下这个词CURRENT_FORD

我写了以下内容

\CURRENT_.*\B-\
Run Code Online (Sandbox Code Playgroud)

哪个返回CURRENT_FORD-两个级别的错误.

  1. 它意味着连字符之间的所有内容都以 CURRENT
  2. 它包括最后的连字符.

更有效的方法是捕获连字符之间的单词而不明确说明第一个单词?

regex hyphen

5
推荐指数
2
解决办法
7437
查看次数

R - gsub 特定位置的特定字符

我想删除变量的最后一个字符。我想知道是否可以选择位置gsub并删除该特定位置的字符。

在这个例子中,我想删除最后一个数字,在 , 之后E,为我的 4 个变量。

variables = c('B10243E1', 'B10243E2', 'B10243E3', 'B10243E4')
gsub(pattern = '[[:xdigit:]]{8}.', replacement = '', x = variables)
Run Code Online (Sandbox Code Playgroud)

我以为我们可以使用命令

{}
Run Code Online (Sandbox Code Playgroud)

为了选择一个特定的位置。

regex position r gsub

5
推荐指数
1
解决办法
9154
查看次数

Perl正则表达式匹配子字符串

我有几个要从中提取子字符串的字符串。这是一个例子:

/skukke/integration/build/IO/something
Run Code Online (Sandbox Code Playgroud)

我想提取第三个/字符之后的所有内容。在这种情况下,输出应为

/build/IO/something
Run Code Online (Sandbox Code Playgroud)

我尝试过这样的事情

/\/\s*([^\\]*)\s*$/
Run Code Online (Sandbox Code Playgroud)

比赛的结果是

something
Run Code Online (Sandbox Code Playgroud)

这不是我想要的。有人可以帮忙吗?

regex perl

5
推荐指数
1
解决办法
676
查看次数

正则表达式预测丢弃一场比赛

我正在尝试进行正则表达式匹配,这完全抛弃了前瞻性.

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
Run Code Online (Sandbox Code Playgroud)

这是匹配,这是我的regex101测试.

但是,当一封电子邮件,开始-或者_.不应该完全匹配它,而不是仅仅删除初始符号.欢迎任何想法,我一直在寻找过去半小时,但无法弄清楚如何从这些符号开始时删除整个电子邮件.

c# regex

5
推荐指数
1
解决办法
207
查看次数

RegEx javascript 不正确匹配

我有一个小的 javascript 函数:

function GetFilteredListLimited(event) {
    var $source = $(event.target);
    var $Pattern = event.data.Pattern;
    var RE = new RegExp($Pattern, 'i');
    if (RE.test($source.val())) {
        console.log('RegEx match');
    }
};
Run Code Online (Sandbox Code Playgroud)

使用的模式是:

^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$
Run Code Online (Sandbox Code Playgroud)

这应该与大多数电子邮件地址匹配。

使用http://regexpal.com/我可以看到该模式是正确的。但由于某种奇怪的原因,脚本已经匹配@之后的第四个字符

abc@abcd 不应给出匹配项,但确实如此。有什么建议 ?

javascript regex

5
推荐指数
1
解决办法
3058
查看次数

正则表达式也匹配重音字符

我有以下 PHP 代码:

\n\n
$search = "foo bar que";\n$search_string = str_replace(" ", "|", $search);\n\n$text = "This is my foo text with qu\xc3\xa9 and other accented characters.";\n$text = preg_replace("/$search_string/i", "<b>$0</b>", $text);\n\necho $text;\n
Run Code Online (Sandbox Code Playgroud)\n\n

显然,“que”与“qu\xc3\xa9”不匹配。我怎样才能改变这一点?有没有办法让preg_replace忽略所有口音?

\n\n

必须匹配的字符(西班牙语):

\n\n
\xc3\xa1,\xc3\x81,\xc3\xa9,\xc3\x89,\xc3\xad,\xc3\x8d,\xc3\xb3,\xc3\x93,\xc3\xba,\xc3\x9a,\xc3\xb1,\xc3\x91\n
Run Code Online (Sandbox Code Playgroud)\n\n

我不想在应用正则表达式之前替换所有重音字符,因为文本中的字符应该保持不变:

\n\n

“这是我的foo文本,带有qu\xc3\xa9和其他重音字符。”

\n\n

并不是

\n\n

“这是我的foo文本,带有que和其他重音字符。”

\n

php regex character non-ascii-characters accent-insensitive

5
推荐指数
1
解决办法
1575
查看次数

除非它包含某些内容,如何匹配字符串?

我有一个PowerShell脚本,它将获取文件夹中所有文件的列表,然后(基于Switch语句中的正则表达式匹配)将每个文件移动到指定的文件夹(取决于正则表达式匹配).

我遇到了特定列表的问题.以"40"开头的一组文件(以其部件号命名的PDF文件)将移动到指定的文件夹.

这个正则表达式本身对我来说很容易,我遇到的问题是,如果文件包含 _ol OR _ol_则它不能匹配.

例如,下面的文件名应该全部匹配:

401234567.pdf
401234567a.pdf
401234567_a.pdf
401234567a_something.pdf
Run Code Online (Sandbox Code Playgroud)

以下内容不应匹配:

401234567_ol.pdf
401234567_ol_something.pdf
Run Code Online (Sandbox Code Playgroud)

使用^(?i)40\w+[^_ol].pdf$正则表达式是我能得到的最接近的.它将否定401234567_ol.pdf作为一个匹配; 但是,它接受了401234567_ol_something.pdf.有谁知道我怎么能否认这也是一场比赛?

regex powershell

5
推荐指数
1
解决办法
677
查看次数

使用Python正则表达式按后缀拆分

我想只用后缀来分割字符串.例如,我希望能够拆分dord word[dor,wor].

我虽然\wd会搜索以此结尾的单词d.然而,这不会产生预期的结果

import re
re.split(r'\wd',"dord word")
['do', ' wo', '']
Run Code Online (Sandbox Code Playgroud)

我怎么能用后缀分割?

python regex split

5
推荐指数
1
解决办法
389
查看次数