-
2021-03-23 11:51:31
我认为难点在于随机文本也可以包含逗号.
如果关键字全部在一行上并且它是整个文本的最后一行,请修剪整个文本,从末尾删除新的行字符.然后从最后一个新行字符到结尾.这应该是包含关键字的字符串.一旦你将这部分单独挑出,你可以在逗号上爆炸字符串并计算部分.
$string = " some gibberish, some more gibberish, and random text
keyword1, keyword2, keyword3
";
$lastEOL = strrpos(trim($string), PHP_EOL);
$keywordLine = substr($string, $lastEOL);
$keywords = explode(',', $keywordLine);
echo "Number of keywords: " . count($keywords);
我知道这不是一个正则表达式,但我希望它有所帮助.
找到解决方案的唯一方法是找到将随机文本与关键字中不存在的关键字分开的内容.如果关键字中存在新行,则无法使用它.但是连续2个新线?或任何其他角色.
$string = " some gibberish, some more gibberish, and random text
keyword1, keyword2, keyword3,
keyword4, keyword5, keyword6,
keyword7, keyword8, keyword9
";
$lastEOL = strrpos(trim($string), PHP_EOL . PHP_EOL); // 2 end of lines after random text
$keywordLine = substr($string, $lastEOL);
$keywords = explode(',', $keywordLine);
echo "Number of keywords: " . count($keywords);
(编辑:添加更多新行的示例 – 远射)
更多相关内容 -
Python正则表达式匹配数字和小数的方法
2021-01-20 05:29:531.正则匹配数字,\为转义字符,d+为匹配一次或多次 ... 您可能感兴趣的文章:Python 正则表达式匹配数字及字符串中的纯数字python字符串中匹配数字的正则表达式python正则表达式去掉数字中的逗号(pyt -
java正则表达式四种常用的处理方式(匹配、分割、替代、获取)
2020-12-13 12:05:32java 正则表达式高级篇,介绍四种常用的处理方式:匹配、分割、替代、获取,具体内容如下 package test; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 正则表达式 * 正则表达式 的... -
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2020-12-25 04:03:29数字中经常是3个数字一组,之后跟一个逗号,因此规律为:***,***,*** 正则式复制代码 代码如下:[a-z]+,[a-z]? 复制代码 代码如下:import re sen = “abc,123,456,789,mnp”p = re.compile(“\d+,\d+?”) for ... -
开发过程最全的正则表达式匹配中英文、字母和数字
2020-10-16 23:10:25主要介绍了开发过程最全的正则表达式匹配中英文、字母和数字 的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下 -
正则表达式只匹配逗号而不是括号?
2021-03-01 09:04:06(在进行正则表达式赏金任务研究时发现了您的问题。)此外,现有解决方案还会检查逗号后是否没有括号,但这并不能保证它会嵌入括号中。正则表达式非常简单:\(.*?\)|(,)交替的左侧与完整的括号匹配。我们将忽略这些...保罗,复活了这个问题,因为它有一个未提及的简单解决方案。(在进行正则表达式赏金任务研究时发现了您的问题。)
此外,现有解决方案还会检查逗号后是否没有括号,但这并不能保证它会嵌入括号中。
正则表达式非常简单:\(.*?\)|(,)
交替的左侧与完整的括号匹配。我们将忽略这些匹配。右侧匹配并捕获到组1的逗号,我们知道它们是右侧的逗号,因为它们与左侧的表达式不匹配。
在此演示中,您可以在右下方窗格中看到“组1”捕获。
您说过要匹配逗号,但是可以使用相同的一般想法来拆分或替换。
为了匹配逗号,您需要检查Group1。此完整程序的唯一目标就是做到这一点。import java.util.*;import java.io.*;import java.util.regex.*;import java.util.List;class Program {public static void main (String[] args) throws java.lang.Exception {String subject = "12,44,foo,bar,(23,45,200),6";Pattern regex = Pattern.compile("\\(.*?\\)|(,)");Matcher regexMatcher = regex.matcher(subject);List group1Caps = new ArrayList();// put Group 1 captures in a listwhile (regexMatcher.find()) {if(regexMatcher.group(1) != null) {group1Caps.add(regexMatcher.group(1));}} // end of building the list// What are all the matches?System.out.println("\n" + "*** Matches ***");if(group1Caps.size()>0) {for (String match : group1Caps) System.out.println(match);}} // end main} // end Program
这是一个现场演示
要使用相同的技术进行拆分或替换,请参见参考资料中的代码示例。
参考
-
【知识】正则表达式匹配中文标点符号
2022-07-22 13:21:03正则表达式匹配中文标点符号正则表达式匹配中文标点符号
function checkText() { var text = ","; //匹配这些中文标点符号 。 ? ! , 、 ; : “ ” ‘ ' ( ) 《 》 〈 〉 【 】 『 』 「 」 ﹃ ﹄ 〔 〕 … — ~ ﹏ ¥ var reg = /[\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3008|\u3009|\u3010|\u3011|\u300e|\u300f|\u300c|\u300d|\ufe43|\ufe44|\u3014|\u3015|\u2026|\u2014|\uff5e|\ufe4f|\uffe5]/; if(reg.test(text)){ alert('是中文标点符号'); }else{ alert('不是中文标点符号'); } }
常用符号:
句号【。】 —— \u3002
问号【?】 —— \uff1f
叹号【!】 —— \uff01
逗号【,】 —— \uff0c
顿号【、】 —— \u3001
分号【;】 —— \uff1b
冒号【:】 —— \uff1a
双引号【“”】 —— \u201c匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff] -
java中,正则表达式匹配逗号怎么写?
2016-06-16 07:28:57输入的一个字符,需要校验一下 ,这个字符串里面,有没有含有逗号,这个应该怎么写?找个很久,没有找到,麻烦知道的大神,回来一下,中英文的最好都有,谢谢。 -
Python正则表达式拆分逗号或空格分隔字符串
2020-11-29 06:13:35如果第一部分不匹配(即没有用引号括起来的字符串),第二部分([^\r\n\t\f ,]+)匹配所有不是空格或逗号的内容。所以它将忽略您的分隔符,但匹配所有其他内容。在import rerows = [""" 5,'THISMORE"THAN4','/,',4.....作为padraiccunningham上一个问题的解决方案的改进版本,regex ^{}将捕获所有字段。在
第一部分((["']).*?\1(?
如果第一部分不匹配(即没有用引号括起来的字符串),第二部分([^\r\n\t\f ,]+)匹配所有不是空格或逗号的内容。所以它将忽略您的分隔符,但匹配所有其他内容。在import re
rows = [""" 5,'THISMORE"THAN4','/,',4.2560,0.34000E-01 """,
# ^ added quote character here
""" 5,'TH\\'IS','/,',4.2560,0.34000E-01 """,
# ^ added escaped quote here
"""5 , 'THIS' , '/,' , 4.2560 , 0.34000E-01 """,
""" '5' 'THIS' '/,' '4.2560' '0.34000E-01' """,
""" 5,'THIS','this','/,',4.2560,0.34000E-01 """,
""" 5,'THIS','/,',4.2560,0.34000E-01 """]
pattern = re.compile(r'(["\']).*?\1(?
result = [[m.group(0).strip('"\'') for m in pattern.finditer(row)]
for row in rows]
import pprint
pprint.pprint(result)
印刷品:
^{pr2}$
仍然存在问题的是,在逗号分隔的行中包含空格的未加引号的字段。因此'hello there, "I actually", have, 5, fields'
将导致:['hello','there','I actually','have','5','fields']
你的资料里有这个吗?在
-
Java正则表达式过滤出字母、数字和中文
2020-09-03 06:08:12正则表达式在java程序中应用非常广泛,本文给大家介绍java正则表达式过滤字母、数字和中文,本文代码讲解的非常详细,非常具有参考价值,感兴趣的朋友快来看看吧 -
Java通过正则表达式获取字符串中数字的方法示例
2020-08-31 03:52:47最近工作中遇到了一个需求,需要利用java获取字符串中的数字,尝试几种方法后发现利用正则表达式实现最为方法,下面这篇文章就主要介绍了Java通过正则表达式获取字符串中数字的方法,文中给出了详细的示例代码,需要... -
C语言----正则表达式匹配
2021-08-22 16:45:30= 0)) //若*前面的字符串匹配或者模式串为'.*'情况 { return core(str+1, pattern+2) || //str[0]刚好有且只有一个字符与模式串匹配上了 core(str+1, pattern) || //有多个str[0]字符情况,则str接着往后匹配 core... -
python正则表达式匹配
2021-08-25 19:59:151. 正则表达式—特殊表达式含义 1.1 普通字符集 1) \w 匹配字母数字及下划线 2) \W 匹配非字母数字及下划线 3) \s 匹配任意空白字符,等价于 [\t\n\r\f]. 4) \S 匹配任意非空白字符 5) \d 匹配任意数字,等价于 [0-9... -
正则表达式 匹配点号_linux正则表达式详解(一) -通配符与基本正则表达式
2020-10-22 00:28:21首先我们需要知道通配符和正则表达式的使用场景:通配符也叫文件名替换,它主要是作用于匹配文件名,常用命令是ls、find、cp、mv;正则表达式主要是作用于匹配文件中的字符串,常用命令命令是grep、awk、sed。通配符... -
js正则表达式匹配第n个逗号换行
2021-09-07 10:31:52//第一个逗号换行 s=s.replace(reg,",’\n’"); //第二个逗号换行 var index = 1; s=s.replace(reg,function(){index++;return index%2?’\n’:arguments[0]}); //第@个逗号换行 var index = 0; s=s.replace(reg,... -
JS正则表达式必须包含数字、字母、特殊字符
2020-10-16 14:14:55主要介绍了JS正则表达式必须包含数字、字母、特殊字符的相关资料,文中还给大家提到了js 正则表达式 匹配除汉字,字母,数字,逗号,句号外的特殊字符(用来规范输入内容)需要的朋友可以参考下 -
正则表达式只匹配不在括号内的逗号?
2021-03-01 09:03:57的正则表达式是非常简单的:\(.*?\)|(,)交替的左侧完整的括号匹配。我们将忽略这些匹配。右侧与第1组匹配并捕获逗号,并且我们知道它们是正确的逗号,因为它们与左侧的表达式不匹配。在此demo中,您可... -
JS正则表达式匹配各种特殊字符
2022-03-10 18:30:25) 如果可以为空的空可以是空格和制表符那就这么写:^\s*$|^(\d+|\-){7,}$ 正则表达式不为空用\S匹配,不能有空格可以用[^ ]匹配,[]中^后面是一个空格。 [size=12px]1。^d+$ //匹配非负整数(正整数 + 0) 2。^[0-... -
hive中使用正则表达式匹配数字
2022-04-15 10:32:53匹配整数 \d 是匹配一个数字(0到9) \d 前面多了第一个\ 是为了在程序中转义第二个\ +表示 1个或多个 组合起来 \d+ 就表示多个数字,形如 12、44、6763…… 在hive中判断字符是不是数字,还需要增加首尾限制:^\d+$ ... -
(二)正则表达式匹配位置匹配攻略
2021-02-26 10:33:34正则表达式是匹配模式,要么匹配字符,要么匹配位置。本章讲讲正则匹配位置的汇总1、什么是位置?位置是相邻字符之间的位置。比如,下图中箭头所指的地方:image.png2、如何匹配位置呢?在ES5中,共有6个锚字符:**^... -
常用正则表达式匹配(中文字符)
2021-11-09 19:32:58一、校验数字的表达式 数字:1$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9])$ 非零开头的最多带两位小数的数字:^([1-9][0-9])+(.[0-9]{1,2})?$ 带1-2... -
PHP - 正则表达式,替换逗号分隔符,以分号
2021-03-23 11:52:22我只是想尝试做一个代码,可以做到这一点老式的方式。它发现“,并根据它是否是他们之间或他们的外面或不替换。$str = '1,"4052","B00K6ED81S",,"Bottle, white - 6,5 l, WENKO","Good design!","Bottle, white 6,5 ... -
JS正则表达式匹配货币数字
2021-04-24 02:33:24下面我们分步讲解如何书写正则表达式。1)根据千位把相应的位置替换成“,”,以最后一个逗号为例。解决方法:(?=d{3}$)。var result = "12345678".replace(/(?=d{3}$)/g, ','); console.log(result); //“12345,678”... -
正则表达式匹配两个特殊字符中间的内容
2022-04-14 16:52:43正则表达式匹配两个特殊字符中间的内容 -
Java正则表达式用逗号分割字符串,但忽略引号和括号[复制]
2021-03-11 13:06:56Java: splitting a comma-separated string but ignoring commas in quotes9个我坚持这个正则表达式.所以,我输入:>“起重机装置,(物理对象)”(X1,x2,x4),不是“由研究护士看到(发现)”,EntirePatellaBodyS... -
正则表达式 数字逗号隔开的正确解法
2019-08-14 21:21:45需求1: (1)要求只能由数字和逗号组成 (2)开头结尾不能由逗号组成 例如:①,111②111,③111,,,④,,111,⑤111,b111⑥111,2424b42⑦,⑧b111,222⑨222...正则表达式的写法:^\d+(,\d+)*$或者^(\d+,)*\d+$ 需求2...