Regex 正则表达式拆分

Regex 正则表达式拆分,regex,Regex,我有一个字符串,如下所述。我一直在尝试使用正则表达式进行拆分,并浏览论坛,我发现([^ |]+)将匹配除(管道)之外的所有内容,但是我想使用正则表达式将其拆分为两部分,但无法做到这一点。因此,一个表达式是(xyz),它将从GA中提取管道字符之前的所有内容,第二个表达式是(abc),它将提取第一个管道之后的任何内容 GA1.2.1127630839.1468526914 | 3847EFF358ABEC90-01A39B0290BAC298对流行语言的猜测。:-) Python: 'GA1.2.1

我有一个字符串,如下所述。我一直在尝试使用正则表达式进行拆分,并浏览论坛,我发现([^ |]+)将匹配除(管道)之外的所有内容,但是我想使用正则表达式将其拆分为两部分,但无法做到这一点。因此,一个表达式是(xyz),它将从GA中提取管道字符之前的所有内容,第二个表达式是(abc),它将提取第一个管道之后的任何内容


GA1.2.1127630839.1468526914 | 3847EFF358ABEC90-01A39B0290BAC298

对流行语言的猜测。:-)

Python:

'GA1.2.1127630839.1468526914|3847EFF358ABEC90-01A39B0290BAC298'.split('|')
JavaScript:

'GA1.2.1127630839.1468526914|3847EFF358ABEC90-01A39B0290BAC298'.split('|')
PHP:

去:

红宝石:


猜测流行语言。:-)

Python:

'GA1.2.1127630839.1468526914|3847EFF358ABEC90-01A39B0290BAC298'.split('|')
JavaScript:

'GA1.2.1127630839.1468526914|3847EFF358ABEC90-01A39B0290BAC298'.split('|')
PHP:

去:

红宝石:

编辑 澄清之后,我明白了你的要求。摆弄一下,我发现这两个表达应该能满足你的需求:

^.*(=\\124;)获取第一部分,并且
(?编辑
在澄清之后,我明白了你的问题。摆弄一下,我发现这两个表达应该会给你你想要的:

^.*(=\\124;)获取第一部分,并且

(?第一个是
^[^ |]+
,第二个是
[^ |]+$

我们的想法是将求反字符类与锚点一起使用。
^
将匹配字符串的开头,
$
将匹配字符串的结尾


这两种模式没有查找功能,几乎可以用于任何正则表达式风格。

第一种是
^[^ |]+
,第二种是
[^ |]+$

我们的想法是将求反字符类与锚点一起使用。
^
将匹配字符串的开头,
$
将匹配字符串的结尾



这两种模式没有lookarounds,几乎可以与任何正则表达式一起使用。

您可以输入预期的输出吗?您使用的是什么语言?如果您只想在管道字符处拆分,为什么需要正则表达式?在Javascript或Python中使用
.split()
explode()
在PHP中,等等。第一个正则表达式的预期输出将是GA1.2.1127630839.1468526914,第二个正则表达式的预期输出将是3847EFF358ABEC90-01A39B0290BAC298。之所以需要是正则表达式,是因为我使用的工具只接受正则表达式。这个正则表达式将动态拆分字符串并将其推送到两个字段中,否则每天都会使用手动dump将被获取,然后被推送到这些相关字段中。非常感谢您能输入预期的输出吗?您使用的是什么语言?如果您只想在管道字符处拆分,为什么需要正则表达式?在Javascript或Python中使用
.split()
explode()
在PHP中,等等。第一个正则表达式的预期输出将是GA1.2.1127630839.1468526914,第二个正则表达式的预期输出将是3847EFF358ABEC90-01A39B0290BAC298。之所以需要是正则表达式,是因为我使用的工具只接受正则表达式。这个正则表达式将动态拆分字符串并将其推送到两个字段中,否则每天都会使用手动dump将被获取,然后推送到相关字段中。提前感谢:
strsplit('GA1.2.1127630839.1468526914 | 3847EFF358ABEC90-01A39B0290BAC298','124;',fixed=TRUE)
R:
strsplit('GA1.2.1127630839.1468526914 | 3847EFF358ABEC90-01A39B0290BAC298','124;',fixed=TRUE)
谢谢,这很好,但是我只需要使用正则表达式作为我的工具,只接受正则表达式。这些是正则表达式。不同语言之间,甚至在记事本++之类的文本编辑器中,它们或多或少都是相同的……除非您谈论的是格式“/pattern/replacement/”,例如在
SAS
中?您指的是什么工具?我指的是Adobe Analytics Classification Importer工具。它是一个基于web的界面。是的,正则表达式在所有平台上都是相同的。因此我必须编写一个正则表达式(ABC)对于这一个,它将只提取GA1.2.1127630839.1468526914。我原以为^GA.*$\\\;但这一个对另一个不起作用。对于字符串的另一部分也是如此啊!现在你的目标更清楚了。因此,第一个将是
^.*=(\\\\\\)
,第二个
(?谢谢,太好了,这很好用。正则表达式对我来说一直是个噩梦。有没有办法让我的性能达到你们的一半。谢谢,这很好,但是我只需要使用正则表达式作为我的工具接受正则表达式。这些都是正则表达式。在不同语言之间,甚至在记事本++之类的文本编辑器中,它们或多或少都是一样的,除非你会说话关于表格“/pattern/replacement/”,例如在
SAS
中?您指的是什么工具?我指的是Adobe Analytics Classification Importer工具。它是一个基于web的界面。是的,regex在所有平台上都是相同的。因此我必须编写一个regex(ABC)对于这一个,它将只提取GA1.2.1127630839.1468526914。我原以为^GA.*$\\\;但这一个对另一个不起作用。对于字符串的另一部分也是如此啊!现在你的目标更清楚了。因此,第一个将是
^.*=(\\\\\\)
,第二个
)谢谢,太好了,这很好用。Regex对我来说一直是个噩梦。有没有办法让我变成你们一半的好呢。我觉得你们做得很好。我觉得你们做得很好。
'GA1.2.1127630839.1468526914|3847EFF358ABEC90-01A39B0290BAC298'.split('|')
myString <- 'GA1.2.1127630839.1468526914|3847EFF358ABEC90-01A39B0290BAC298'
part1 <- sub(pattern = "(.*)\\|(.*)", x = myString, replacement = "\\1")
part2 <- sub(pattern = "(.*)\\|(.*)", x = myString, replacement = "\\2")
import re

myString = 'GA1.2.1127630839.1468526914|3847EFF358ABEC90-01A39B0290BAC298'
part1 = re.sub(pattern="(.*)\|(.*)", repl = "\\1", string = myString)
part1 = re.sub(pattern="(.*)\|(.*)", repl = "\\2", string = myString)