当前位置: 首页 > 知识库问答 >
问题:

使用regex删除字符串中不需要的字符

祁晟
2023-03-14
$mystring = "ABEH A501; BIOL L340; BIOL Z620; Q799; ABEH A501";
$string = preg_replace("/[^a-zA-Z]{4}\s{1,}[a-zA-Z]{1}[0-9]{3}/","",$mystring);

echo $string; //ABEH A501; BIOL L340; BIOL Z; ABEH A501

Q799被删除,因此也是另一个匹配字符串的一部分,不确定这是由于错误的regEx还是反字符类的错误应用。

共有1个答案

呼延运恒
2023-03-14

在PHP中,您可以定义一个已知的好匹配regex,并使用PCRE谓词(*skip)(*f)跳过这些匹配替换:

$mystring = "ABEH A501; BIOL L340; BIOL Z620; Q799; ABEH A501";
echo preg_replace('/[a-zA-Z]{4}\s+[a-zA-Z]\d{3}(*SKIP)(*F)|\w+\W*/', '', $mystring);

RegEx演示

产出:

ABEH A501; BIOL L340; BIOL Z620; ABEH A501
 类似资料:
  • 问题 你想去掉文本字符串开头,结尾或者中间不想要的字符,比如空白。 解决方案 strip() 方法能用于删除开始或结尾的字符。 lstrip() 和 rstrip() 分别从左和从右执行删除操作。 默认情况下,这些方法会去除空白字符,但是你也可以指定其他字符。比如: >>> # Whitespace stripping >>> s = ' hello world \n' >>> s.strip()

  • 问题内容: 我正在寻找一种有效的方法来从DataFrame列的字符串中删除不需要的部分。 数据如下: 我需要将这些数据修剪为: 我试过了.str.lstrip(‘+-‘)。str.rstrip(‘aAbBcC’),但出现错误: 任何指针将不胜感激! 问题答案:

  • 我正在做一个项目,我必须从PDF中提取文本数据。 我能够从PDF中提取文本,但提取的文本有时包含我想从中剥离的行。 这是不需要的线条的例子- 国际标准书号0-7225-3293-8。第一部分第二部分结语 第1/94页 这里有一个很好的例子(我想保留) 当男孩带着他的牛群来到一座废弃的教堂时,夜幕已经降临。 我想多睡一会儿,他想。那天晚上他做了和一周前一样的梦 不同的PDF可以给出不同的无用行。 我

  • 我有一个简单的字符串,它有一个值。这个值来自生物识别提取器 我使用此代码消除多余字符: 但它只删除了~ DeviceName= 当我var_dump时,它有一个6字符串值,但它应该是5字符串值。 谢谢你的回答。下面的代码解决了我的问题。

  • 但是,当我尝试使用的输入运行此代码时,我得到了的意外结果 我做错了什么?

  • 问题内容: 如果我有一个字符串列表,例如: 为了摆脱每个字符串中的所有s,我该怎么办?我尝试在for循环中使用或,但是它无法像正常字符串(不在列表中)那样工作。有人有建议吗? 问题答案: 尝试这个: