自定义正则表达式 [关闭]

     2023-02-24     145

关键词:

【中文标题】自定义正则表达式 [关闭]【英文标题】:Custom Regular Expressions [closed] 【发布时间】:2013-03-24 19:03:58 【问题描述】:

如何使用正则表达式来分隔

BCT34385Z0000N07518Z
BCT34395Z0000N07518Z

转换成BCT343 格式?我正在使用这个 magento 将 2 种类型的序列号(即BCT34385Z0000N07518ZBCT34395Z0000N07518Z)分解为正则表达式,以识别前 6 个字符,即BCT343

【问题讨论】:

什么是 BCT343 格式?你期望什么输出?你试过什么? 你想只抓取前 6 个字符吗? 如果有,请给我们一个格式规范的链接。如果不是,你至少应该解释一下那个东西的结构。否则我们怎么知道你的标准是什么? 那为什么不直接substr呢?喜欢$value = substr("BCT34385Z0000N07518Z", 0, 6); @danny - 然后建议这样说。我们并不擅长读懂人心。只需拨打两个substr() 电话。另外,我们在说什么语言? 【参考方案1】:

这是非常糟糕的做法,但因为您要求这样做:

$str = 'BCT34385Z0000N07518Z';
preg_match('/^(.6)(.*?)$/', $str, $result);

echo $result[1]; // 'BCT343'
echo $result[2]; // '85Z0000N07518Z'

或者如果你想要一个 if 语句:

$str = ...;

if (preg_match('/^BCT343/', $str)) 
    // yes!

【讨论】:

使用正则表达式可以得到2个结果吗? @danny 我使用 1 个正则表达式并得到 2 个结果?【参考方案2】:

如果您需要将这些字符串分成两部分(前六个字符和其余部分),则根本不需要正则表达式。只需substr 即可:

<?php
    $str1 = substr("BCT34385Z0000N07518Z", 0, 6); // BCT343
    $str2 = substr("BCT34385Z0000N07518Z", 6); // 85Z0000N07518Z
?>

如果您想使用正则表达式执行此操作,您应该设置两个捕获组,一个用于前六个字符,另一个用于字符串的其余部分。正则表达式如下所示:

/^(.6)(.*)$/

/^                // Start of input
(                 // Start capture group 1
  .               // Any charactger
  6             // Repeated exactly 6 times
)                 // End of capture group 1
(                 // Start capture group 1
  .               // Any character
  *               // Repeated 0 or more times
)                 // End of capture group 2
$/                // End of input

您应该使用preg_match() 来使用它。请记住,每个捕获组都将位于匹配数组的位置。请参阅RegExr 中的正则表达式示例。

【讨论】:

需要正则表达式格式。我不能在 magento 上使用它,因为它期望在正则表达式中

自定义正则表达式不在客户端验证

】自定义正则表达式不在客户端验证【英文标题】:CustomRegularExpressionnotvalidatingontheclientside【发布时间】:2016-04-2516:27:59【问题描述】:我已经构建了一个自定义属性来在客户端验证正十进制值。问题是当我将正则表达式直接应... 查看详情

使用正则表达式自动向 PDF 文件添加注释 [关闭]

】使用正则表达式自动向PDF文件添加注释[关闭]【英文标题】:AddcommentstoPDFfilesautomagicallywithregularexpressions[closed]【发布时间】:2011-05-2413:04:41【问题描述】:几年来,我一直在为学术论文评分,我开始看到许多拼写和语法错误的... 查看详情

干货|logstash自定义正则表达式etl实战

...ok数据结构化ETL实战上,并专注于在Grok中使用自定义正则表达式。有时Logstash没有我们需要的模式。幸运的是,我们有正则表达式库:Oniguruma。Oniguruma是一个灵活的正则表达式库。它包含多种语言的不同正则表达式实现的特性。G... 查看详情

使用 QSqlTableModel 的正则表达式自定义 QAbstractItemDelegate

】使用QSqlTableModel的正则表达式自定义QAbstractItemDelegate【英文标题】:CustomQAbstractItemDelegatewithregexforQSqlTableModel【发布时间】:2015-03-1120:00:52【问题描述】:我正在尝试创建一个自定义委托,以便我可以使用Regex来验证正在输入到... 查看详情

路线要求中的自定义正则表达式

】路线要求中的自定义正则表达式【英文标题】:customregexinrouterequirements【发布时间】:2012-02-1613:36:42【问题描述】:我正在尝试使路由参数匹配一个3到15个字符长的字母数字值。代码如下所示:TestBundle_new:pattern:/message/new/namede... 查看详情

自定义标签中的正则表达式替换

】自定义标签中的正则表达式替换【英文标题】:Regexreplacementinacustomtag【发布时间】:2020-03-2112:19:08【问题描述】:我有一个可能包含以下一个或多个标签的字符串:<CHOICE[somewords][otherwords]>我需要替换(C#)所有出现的这... 查看详情

Laravel 中正则表达式规则的自定义验证消息?

】Laravel中正则表达式规则的自定义验证消息?【英文标题】:CustomvalidationmessageforregexruleinLaravel?【发布时间】:2013-12-1716:19:23【问题描述】:非常基本的问题,我正在尝试为Laravel中的正则表达式验证规则自定义错误消息。特定... 查看详情

js自定义日期格式的正则表达式验证

...ormat=currentFormat//优先替换特殊字符,因为后面替换的正则表达式中包含特殊字符.replace(/s/ig,"\s").replace(/ 查看详情

Grafana - 在查询中使用自定义变量作为正则表达式

】Grafana-在查询中使用自定义变量作为正则表达式【英文标题】:Grafana-usecustomvariableasregexinquery【发布时间】:2019-08-1019:16:37【问题描述】:我们有普罗米修斯数据源,我一直在尝试使用具有少量值的自定义变量作为逗号分隔值... 查看详情

自定义价格过滤器的正则表达式

】自定义价格过滤器的正则表达式【英文标题】:RegularExpressionforcustompricefilter【发布时间】:2021-08-1600:12:41【问题描述】:我正在为特定格式的价格制定正则表达式。有效的输入是:自然数小数(小数点后最多两位),0.0和0.00... 查看详情

日期范围的正则表达式自定义搜索查询

】日期范围的正则表达式自定义搜索查询【英文标题】:RegexCustomSearchqueryfordateranges【发布时间】:2019-06-2320:13:16【问题描述】:我有一个带有搜索页面的MVC.netWeb应用程序。我希望用户能够按给定年份搜索记录,例如1979.但是我... 查看详情

用于忽略自定义转义字符的正则表达式模式

】用于忽略自定义转义字符的正则表达式模式【英文标题】:RegexPatternforignoringacustomescapecharacter【发布时间】:2012-09-0919:38:36【问题描述】:我正在尝试找到一个合适的正则表达式来匹配输入字符串中的一对自定义字符。这些自... 查看详情

Parsley.js 中的自定义正则表达式验证器

】Parsley.js中的自定义正则表达式验证器【英文标题】:CustomRegexValidatorinParsley.js【发布时间】:2016-01-2205:35:04【问题描述】:问题我在为Parsley.js插件创建自定义验证器时遇到问题。我想要做的是测试一个值与一个正则表达式。... 查看详情

jQuery DataTable 自定义按钮正则表达式列搜索

】jQueryDataTable自定义按钮正则表达式列搜索【英文标题】:jQueryDataTablecustombuttonregexcolumnsearch【发布时间】:2021-05-1908:02:06【问题描述】:我正在使用jQueryDataTable来呈现服务器端数据。我可以搜索某个字符串并根据它呈现DataTable... 查看详情

markdown尖叫青蛙自定义提取的正则表达式cheatsheet(代码片段)

查看详情

用于自定义电子邮件和域的 C# 正则表达式

】用于自定义电子邮件和域的C#正则表达式【英文标题】:C#Regexforcustomemailanddomain【发布时间】:2021-11-0920:35:14【问题描述】:我有一个带有使用此模式的输入的剃刀视图:pattern="^[a-zA-Z0-9._+-]+&#64mydomain.com"它用作前端验证非... 查看详情

用于匹配单词的 javascript 正则表达式模式,具有自定义单词边界

】用于匹配单词的javascript正则表达式模式,具有自定义单词边界【英文标题】:javascriptregexpatterntomatchwords,withcustomwordboundary【发布时间】:2014-09-2909:04:53【问题描述】:我正在尝试使用javascript中的正则表达式匹配字符串中的单... 查看详情

如何在自定义 grok 模式中引用正则表达式组?

】如何在自定义grok模式中引用正则表达式组?【英文标题】:HowdoIrefertoaregexgroupinsideacustomgrokpattern?【发布时间】:2017-08-0222:01:06【问题描述】:我想在我的日志行中添加特定URI参数的字段这是一个示例日志行:2017-03-1221:34:36W3SV... 查看详情