- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
$str="a,b,c,d-e,f,g,h"
我正在尝试从 $str
中提取在一个数组中以“,”分隔且在“-”之前的字符串,以及在数组中以“,”分隔且在“-”之后的字符串第二个数组。所以 $arr1=array(a,b,c,d);
和 $arr2=array(e,f,g,h);
。我只是以 $str
为例,通常我希望它适用于相同形式的任何字符串,即 $str=s1,s2,s3,s4,s5,... .-r1,r2,t3....
注意:如果 $str
没有“-”,则 $arr2
消失,而 $arr1
包含分隔的元素数组通过在 $str
中的 ','。
这是我试过的
preg_match_all('~(^|.*,)(.*)(,.*|\-|$)~', $str, $arr1);
preg_match_all('~(-|.*,)(.*)(,.*|$)~', $str, $arr2);
然而,每个数组都带有一个包含字符串 str
的元素。有谁知道为什么这不起作用。
最佳答案
您所有的正则表达式模式都不是最优的,似乎使用 explode
更容易解决这个任务和 array_map
:
array_map()
returns an array containing all the elements ofarray1
after applying the callback function to each one. The number of parameters that the callback function accepts should match the number of arrays passed to thearray_map()
$str="a,b,c,d-e,f,g,h";
$ex = array_map(function ($s) {
return explode(",", $s);
}, explode("-", $str));
print_r($ex);
参见 IDEONE demo
结果:
Array
(
[0] => Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
[1] => Array
(
[0] => e
[1] => f
[2] => g
[3] => h
)
)
关于php - 如何从由 ","分隔并后跟 - 的字符串形成两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32645677/
我想拦截以\*#\*开头的字符串 后跟一个 0 到 7 之间的数字 并以:##结尾 所以像\*#\*0## 但是我找不到这个的正则表达式 最佳答案 假设你想允许只有一个 # 之前和两个之后,我会这样做
在阅读 C# 代码时,我发现了一个相当奇怪的片段: if( whatever is IDisposable) { (whatever as IDisposable).Dispose(); } 我宁
我在看别人的框架代码,我发现其中一个函数的参数接受了一个输入,输入后面跟着(.),当我检查输入的类型时,我发现它是一个结构不是枚举,这让我很困惑 这是函数的屏幕截图,输入看起来像一个枚举案例: 参数的
我对地址运算符后跟解引用运算符的行为有疑问。 让我们看一下表达式 &*p,其中 p 的类型为 int *。 C11 标准(第 6.5.3.2 节)说: The unary & operator yie
在我的团队中,我经常看到队友在写作 list.filter(_.isInstanceOf[T]).map(_.asInstanceOf[T]) 但这对我来说似乎有点多余。 如果我们知道过滤列表中的所有
请帮我解决这个问题。我已经尝试过删除和重新创建数据文件、刷新表、重新启动数据库和整个服务器。 InnoDB 处于 Force Recovery = 4 >mysql -u root Welcome t
如何使用 Swift3 在 UILabel 末尾添加 UIButton,就像阅读更多一样? 我已经使用 Storyboard创建了 UILabel 和 UIButton。 我不想使用任何 Pod
所以我即将将我的服务器迁移到新机器。我在新机器上安装较新版本的mysql 5.7.13,而旧版本的mysql 5.5.13。有一个查询不像以前那样工作与之前的服务器数据相同 select * fr
在 Andrei Alexandrescu 关于错误处理的演讲中: 见 C++ and Beyond 2012: Andrei Alexandrescu - Systematic Error Hand
我指的是本教程 http://www.tldp.org/LDP/abs/html/sha-bang.html#AEN226在 bash 上进一步提高我的知识,但我似乎无法使用网站中提到的脚本命令删除我
我正在尝试为允许 string 的对象编写类型s 作为键和 function s 带有任意数量的参数,后跟作为值的回调。 // non working dummy code type MyObject
我刚刚用 c 语言编写了一个使用命令行参数的程序,我试图打印第一个参数。当我使用以下命令执行程序时 ./a.out $23 并尝试使用下面的代码打印第一个参数 printf("%s", argv[1]
申请 UILongPressGestureRecongnizer一方面, 检查下面的代码以供引用.. @interface ViewController () { UIRotationGes
我正在使用 MPI 和 C 进行编程,并且使用根等级从文件中读取数据,然后将其分发到其余等级。我的 MPI_Scatter 工作正常,我打印出这些值以确保它们是正确的(而且确实如此)。我的问题是,分配
每当“Tskb”作为单个单词出现时,我必须使用 Java 正则表达式将“Tskb”转换为“TsKB”。我写了下面不起作用的代码。 public class TestBGR { priv
我有下面的代码(注意,我稍后会在循环中添加更多代码,但我需要它先工作): var calls_on = true; function hunt(max, ext, duration){ if(
在我的非根 VC 类中,我有以下 doLogout 方法: - (void)doLogout { SDPAppDelegate *app = [self getAppDelegate];
我的数据库中有很多地址。示例:1199 国道 218 我想选择起始数字,后跟第一个单词,并忽略地址的其余部分。所以我想通过调用这个来检索地址:1199 State 感谢您的帮助 最佳答案 如果您运行的
我正在创建一些客户端套接字软件来从服务器读取事件。 (例如,流媒体股票报价)。 问题: .read(b); 立即返回值-1。这会导致无限循环,手机会变得很热。此外,对 s.isConnected()、
我这里有这段代码: var fields = row.split(/regex goes here/); 我想在每次出现时分割行 | 但不是 *| 如何编写这个简单的正则表达式。我认为有一个不是字符,
我是一名优秀的程序员,十分优秀!