我需要匹配所有这些开始标记:
<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)
但不是这些:
<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)
我想出了这个,并希望确保我做对了.我只抓住了a-z.
<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)
我相信它说:
/,然后我有这个权利吗?更重要的是,你怎么看?
我正在尝试使用正则表达式将大写字母替换为相应的小写字母.以便
EarTH: 1,
MerCury: 0.2408467,
venuS: 0.61519726,
Run Code Online (Sandbox Code Playgroud)
变
earth: 1,
mercury: 0.2408467,
venus: 0.61519726,
Run Code Online (Sandbox Code Playgroud)
在Sublime Text中.如何只在包含小写和大写字母的单词中包含字母?这样它影响venUs而不影响VENUS.
我们假设我有以下正则表达式:
-(\d+)-
Run Code Online (Sandbox Code Playgroud)
我想更换,使用C#,1组(\d+)同AA,获得:
-AA-
Run Code Online (Sandbox Code Playgroud)
现在我用以下方法替换它:
var text = "example-123-example";
var pattern = @"-(\d+)-";
var replaced = Regex.Replace(text, pattern, "-AA-");
Run Code Online (Sandbox Code Playgroud)
但我真的不喜欢这个,因为如果我改变模式来匹配_(\d+)_,我也必须改变替换字符串_AA_,这是违反DRY原则的.
我正在寻找类似的东西:
保持匹配的文本的确切方式,但更改组1 this text和组2 another text...
编辑:
这只是一个例子.我只是在寻找一种做我上面所说的通用方法.
它应该适用于:
anything(\d+)more_text 以及你能想象到的任何模式.
我想要做的只是替换组,并保持匹配的其余部分.
我正在使用Python 3.5.2
我有两个清单
所以,我必须循环750,000个句子并执行大约20,000次替换,但是只有我的话实际上是"单词"并且不是更大字符串的一部分.
我是通过预先编译我的文字来做到这一点的,这样它们就被\b元字符所包围
compiled_words = [re.compile(r'\b' + word + r'\b') for word in my20000words]
Run Code Online (Sandbox Code Playgroud)
然后我循环我的"句子"
import re
for sentence in sentences:
for word in compiled_words:
sentence = re.sub(word, "", sentence)
# put sentence into a growing list
Run Code Online (Sandbox Code Playgroud)
这个嵌套循环每秒处理大约50个句子,这很好,但是处理我的所有句子仍需要几个小时.
有没有办法使用该str.replace方法(我认为更快),但仍然要求替换只发生在字边界?
或者,有没有办法加快re.sub方法?re.sub如果我的单词的长度大于句子的长度,我已经通过跳过来略微提高了速度,但这并没有太大的改进.
谢谢你的任何建议.
我有以下Java正则表达式,我没有写,我试图修改:
^class-map(?:(\\s+match-all)|(\\s+match-any))?(\\s+[\\x21-\\x7e]{1,40})$
^ ^
Run Code Online (Sandbox Code Playgroud)
它与此类似.
注意第一个问号.这是否意味着该组是可选的?对应之后已有问号).结肠在正则表达式中有特殊意义吗?
正则表达式编译得很好,并且已经有JUnit测试显示它是如何工作的.只是我对第一个问号和冒号的原因感到有些困惑.
这是一个关于正则表达式的简单问题,但我找不到答案.
我想确定一个数字是否按顺序出现两次或四次.我可以使用什么语法?
\d{what goes here?}
我试过\d{2,4},但这个表达式也接受三位数.
我想匹配一个正则表达式特殊字符,\^$.?*|+()[{.我试过了:
x <- "a[b"
grepl("[", x)
## Error: invalid regular expression '[', reason 'Missing ']''
Run Code Online (Sandbox Code Playgroud)
(等价stringr::str_detect(x, "[")或stringi::stri_detect_regex(x, "[").)
将值加倍以逃避它不起作用:
grepl("[[", x)
## Error: invalid regular expression '[[', reason 'Missing ']''
Run Code Online (Sandbox Code Playgroud)
也没有使用反斜杠:
grepl("\[", x)
## Error: '\[' is an unrecognized escape in character string starting ""\["
Run Code Online (Sandbox Code Playgroud)
我如何匹配特殊字符?
这个问题的一些特殊情况是陈旧的,写得足够好,因为它可以像这样重复关闭:
在R正则表达式中逃脱的时期
如何逃避R中的问号?
在正则表达式中转义管道("|")
我一直在寻找一种有效的方法来做到这一点,但一直无法找到它,基本上我需要的是给定这个url例如:
http://localhost/mysite/includes/phpThumb.php?src=http://media2.jupix.co.uk/v3/clients/4/properties/795/IMG_795_1_large.jpg&w=592&aoe=1&q=100
Run Code Online (Sandbox Code Playgroud)
我希望能够src使用javascript或jquery使用其他值更改参数中的URL ,这可能吗?
提前致谢.
这与正则表达式非常相关,以匹配外部括号,但是,我特别想知道如何或是否可以执行此正则表达式的递归模式?我还没有找到使用这个策略的python示例,所以认为这应该是一个有用的问题!
我已经看到 了一些 索赔 是递归的模式可以用来匹配平衡括号,但使用Python的没有例子正则表达式包(注:重不支持递归模式,你需要使用正则表达式).
一种说法是语法在b(?:m|(?R))*e哪里:
b是什么开始构造,m是什么可以发生在构造的中间,并且e是在构造的末尾可以发生的
我想在以下内容中提取外部大括号的匹配项:
"{1, {2, 3}} {4, 5}"
["1, {2, 3}", "4, 5"] # desired
Run Code Online (Sandbox Code Playgroud)
请注意,对于内括号,这很容易做到:
re.findall(r"{([^{}]*)}", "{1, {2, 3}} {4, 5}")
['2, 3', '4, 5']
Run Code Online (Sandbox Code Playgroud)
(在我的例子中,我使用的是finditer(在匹配对象上),请看这里.)
所以我曾希望以下或某些变体可行:
regex.findall(r"{(:[^{}]*|?R)}", "{1, {2, 3}} {4, 5}")
regex.findall(r"({(:[^{}]*|?R)})", "{1, {2, 3}} {4, 5}")
regex.findall(r"({(:.*|(?R))*})", "{1, {2, 3}} {4, 5}")
regex.findall(r"({(:.*)|(?R)*})", …Run Code Online (Sandbox Code Playgroud) regex ×8
python ×2
replace ×2
c# ×1
html ×1
java ×1
javascript ×1
jquery ×1
numbers ×1
performance ×1
r ×1
r-faq ×1
string ×1
sublimetext ×1
sublimetext2 ×1
sublimetext3 ×1
url ×1
xhtml ×1