我在用正则表达式替换“you\re”一词时遇到问题。
\n\n所有其他单词都正确更改,只是单词"you\'re"。\n我认为它在撇号之后没有解析。
\n\n我必须将单词“you”替换为“I”,将“you\'re”替换为“I\'m”。\n这会将“you”更改为“I”,但“you\re”会变为“I\” 're'因为它没有超过撇号,并且由于某种原因它认为这是单词的结尾。我必须以某种方式逃避撇号。
\n\n请参阅下面的相关代码。
\n\npackage main\n\nimport (\n "fmt"\n "math/rand"\n "regexp"\n "strings"\n "time"\n)\n\n//Function ElizaResponse to take in and return a string\nfunc ElizaResponse(str string) string {\n\n // replace := "How do you know you are"\n\n /*Regex MatchString function with isolation of the word "father"\n *with a boundry ignore case regex command.\n */\n if matched, _ := regexp.MatchString(`(?i)\\bfather\\b`, str);\n …Run Code Online (Sandbox Code Playgroud) 在 Blue Prism 中,我需要识别数据项(文本)的特定元素,以便稍后在我的流程中使用该信息。
\n\n文本字符串如下:
\n\n\n\n\nREKVISITION_NR: 1234567 拿督: 23-07-2018 Rekvirent: ABC, DEF GHI, JKL 60, 8600 MNO Sted: JKL 60, 8600 MNO, Kl.:14:00:00, Bestilt_tid: 60 分钟 Tolkensnavn: PQR STU Koert_fra: VXY , 8600 Silkeborg Vedr.:Z CPR:123456-7890 Sprog:Arabisk 类型:Personlig fremm\xc3\xb8de Godkendt:24-07-2018
\n
正如您所看到的,每个元素都具有以下特征(例如Kl. :14:00:00或Sprog :arabisk):
\n\n我相信我应该使用业务对象实用程序 - Strings \' 操作Extract …
我知道还有其他具有相同标题的问题,但我无法在其中找到答案。
我有一个字符串,可能是/action或者/action{key:value}
我正在尝试获取action,key和value变量。
我尝试过几种正则表达式,它们是此正则表达式的变体:
/^\/(.*?)(\{(.*)\:(.*)\})?/
/^\/(.*?)\{(.*)\:(.*)\}/
匹配/action{key:value}但不匹配/action
/^\/(.*)(\{(.*)\:(.*)\})?/(将捕获组声明为可选)匹配/action但不匹配/action{key:value}(它捕获所有内容)
因此,如果我将第一组声明为惰性组:
/^\/(.*?)(\{(.*)\:(.*)\})?/它不再匹配任何东西了。
我知道我已经接近解决方案,但我肯定误解了一些基本的东西:)
我正在做一些字符串解析并想使用正则表达式。我正在迭代字符串,并希望使用正则表达式和偏移量应用诸如“startsWith”之类的内容,如果找到则返回匹配项,否则返回 null。在伪 JavaScript 中:
function startsWith(string, regex, offset) {
if (regex_matches_at_offset) {
return match;
} else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
一个简单直接的解决方案是先应用子字符串,然后匹配。但我想要使用正则表达式的“startsWith”之类的东西。
如果它是一个字符串而不是正则表达式,我会选择startsWith
function startsWith(string, other_string, offset) {
let starts_with=s.startsWith(other_string, offset); // startsWith from position offset onwards, as other_string has fixed length the "match" is also known
if (starts_with) {
return other_string; // other_string = match
} else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
但对于正则表达式,我当前的解决方案(仅用于测试目的)如下所示:
function startsWith(string, regex, offset) {
let end_part=s.substring(offset); // Substring, performance issue
let match=end_part.match(regex); // Match …Run Code Online (Sandbox Code Playgroud) 正则表达式的要求:
我尝试在RegExr上生成相同的正则表达式,它满足了我的要求,但是当我将相同的内容应用于颤动表单 TextFormField 时,它不起作用。
正则表达式: ^[[0-9]{0,8}(\.[0-9]{1,4})?$|^[[0-9]{0,9}(\.[0-9]{1,3})?$|^[[0-9]{0,10}(\.[0-9]{1,2})?$|^[[0-9]{0,11}(\.[0-9]{1})?$|^[0-9]{0,12}
颤振文本字段代码:
TextFormField(
controller: _textEditingController,
keyboardType:TextInputType.numberWithOptions(decimal: true),
inputFormatters: <TextInputFormatter>[
WhitelistingTextInputFormatter(RegExp(r'^[[0-9]{0,8}(\.[0-9]{1,4})?$|^[[0-9]{0,9}(\.[0-9]{1,3})?$|^[[0-9]{0,10}(\.[0-9]{1,2})?$|^[[0-9]{0,11}(\.[0-9]{1})?$|^[0-9]{0,12}')),
],
),
Run Code Online (Sandbox Code Playgroud)
使用上面的代码我无法dot(.)在 TextFormField 中输入。
注意:用户不应在 中输入多于一位小数的数字TextFormField。
我在数据框中的一列中的测试中包含了一些日期。例如,
sr = pd.Series(['04/20/2009', '04/20/09', '4/20/09', '4/3/09', '6/2008','12/2009','2010'])
Run Code Online (Sandbox Code Playgroud)
我想提取这些日期......我一年中有一半的时间在“月”和“日”列中结束。
result = sr.str.extractall(r'(?P<month>\d{,2})[/]?(?P<day>\d{,2})[/]?(?P<year>\d{2,4})')
result
month day year
match
0 0 04 20 2009
1 0 04 20 09
2 0 4 20 09
3 0 4 3 09
4 0 6 20 08
5 0 12 20 09
6 0 20 NaN 10
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
我只能想到将“'6/2008'、'12/2009'、'2010'”与“'04/20/2009'、'04/20/09'、'4/20/09'”分开处理,然后附加它们。
考虑以下字符串
text2 = '''
Mr. Schafer
Mr Smith
Ms Davis
Mrs. Robinson
Mr. T
'''
Run Code Online (Sandbox Code Playgroud)
我希望正则表达式能够匹配完整的姓名,例如“先生”。以谢弗为例
使用 finditer():
matches = re.finditer(r'(Mr|Ms|Mrs)\.?\s[A-Z]\w*', text2)
for match in matches:
print(match)
Run Code Online (Sandbox Code Playgroud)
结果:
<_sre.SRE_Match object; span=(1, 12), match='Mr. Schafer'>
<_sre.SRE_Match object; span=(13, 21), match='Mr Smith'>
<_sre.SRE_Match object; span=(22, 30), match='Ms Davis'>
<_sre.SRE_Match object; span=(31, 44), match='Mrs. Robinson'>
<_sre.SRE_Match object; span=(45, 50), match='Mr. T'>
Run Code Online (Sandbox Code Playgroud)
finditer() 给出了我想要的结果,但不在列表中。
但是当我使用 findall() 时:
re.findall(r'(Mr|Ms|Mrs)\.?\s[A-Z]\w*', text2)
Run Code Online (Sandbox Code Playgroud)
结果:
['Mr', 'Mr', 'Ms', 'Mrs', 'Mr']
Run Code Online (Sandbox Code Playgroud)
为什么是这样?如何使用 findall() 获得我想要的结果
我想要这个结果:
['Mr. Schafer', 'Mr Smith', 'Ms …Run Code Online (Sandbox Code Playgroud) 我需要解析一个看起来像这样的配置文件(简化):
<config>
<links>
<link name="Link1" id="1">
<encapsulation>
<mode>ipsec</mode>
</encapsulation>
</link>
<link name="Link2" id="2">
<encapsulation>
<mode>udp</mode>
</encapsulation>
</link>
</links>
Run Code Online (Sandbox Code Playgroud)
我的目标是能够更改特定链接的参数,但是我无法让替换正常工作.我有一个正则表达式,可以隔离特定链接上的参数值,其中值包含在捕获组1中:
link_id = r'id="1"'
parameter = 'mode'
link_regex = '<link [\w\W]+ %s>[\w\W]*[\w\W]*<%s>([\w\W]*)</%s>[\w\W]*</link>' \
% (link_id, parameter, parameter)
Run Code Online (Sandbox Code Playgroud)
从而,
print re.search(final_regex, f_read).group(1)
Run Code Online (Sandbox Code Playgroud)
打印ipsec
正则表达式中的示例似乎都假设人们想要在替换中使用捕获组,但我需要做的是替换捕获组本身(例如,将Link1模式从ipsec更改为udp).
我有这样的正则表达式:
(.*?)("DisplayName":.*?)(,)(.*?"Groups":?)?(\[.*?\])?(,)(.*?"Phones":)?(\[.*?\])?(.*?\},)?
Run Code Online (Sandbox Code Playgroud)
我想用它来处理这样的字符串:
{"Affinity":20,"DisplayName":"Moe Larry","电子邮件":[{"Address":"moelarry@gmail.com","Primary":true,"Type":{"Id":" HOME"}},"FullName":{"FamilyName":"Larry","GivenName":"Moe","Unstructured":"Moe Larry"},"Groups":[{"id":"^ Mine "}","Id":"1234567890","MailsSent":0,"名称":"Moe Larry","电话":[{"数字":"555-999-6661","类型":{ "ID": "移动设备"}}], "ProfileLink": ""},{ "亲和力":20, "显示名称": "stoogesarefunny", "电子邮件":[{ "地址": "stoogesarefunny","主":真}]," EvergreenPhoto ":"/照片/私人/ adflk; jsd394u75430o8752380974321jtkasdljf8937489213749832654" , "ID": "834754hthbf83744823f", "MailsSent":0},{ "亲和力":20, "显示名称":"stoogesarefunny @ gmail.com " "电子邮件":[{ "地址": "stoogesarefunny@gmail.com", "主":真正}], "EvergreenPhoto": "/照片/私营/ asdfAJDKLJSFIOEJHLTHSJKLDF234987s897KJHSDFKJHDF89273473ASLKJDLSKJIFEIH", "ID":" 834754hthbf83744823f ","MailsSent":0,"ProfileLink":" https://profiles.google.com/stoogesarefunny "},{"Affinity":20,"DisplayName":"Shemp","FullName":{"GivenName" : "Shemp" "非结构化": "Shemp"}, "组":[{ "ID": "^矿"}], "ID": "1234567890", "MailsSent":0, "名": "Shemp","手机":[{"号码":" + 15553085671" , "类型":{ "ID": "OTHER"}}]},{ "亲和力":20, "显示名称": "ClownFace", "全名":{ "给定名称": "ClownFace", "非结构化": "ClownFace"}, "组":[{ "ID": "^矿"}], "ID": "1234567890", "MailsSent":0,"名称":" ClownFace", "电话":[{ "号码": …
我在文件中有一些数据,并且我正在使用这些数据Regex来获取单个元素并删除和标记\r\n之间的所有内容。<opening></closing>
但是,当我尝试elements单独选择时,最后,整个数据将被选为一组。
这是我的正则表达式:
(<([ph0-9figc]+)>)([a-zA-Z0-9äöüÄÖÜß[:punct:] \n\r\t])+(<\/\2>)
Run Code Online (Sandbox Code Playgroud)
输入数据样本
regex ×10
regex-group ×10
javascript ×2
python ×2
blueprism ×1
c# ×1
dart ×1
date ×1
flutter ×1
go ×1
pandas ×1
performance ×1
python-3.x ×1
regex-greedy ×1
ruby ×1
string ×1
text ×1