标签: expression

如何使用regex和Notepad ++删除所有非ASCII字符?

我搜索了很多,但没有写到如何从Notepad ++中删除非ASCII字符.

我需要知道在查找和替换中写入什么命令(图片会很棒).

  • 如果我想制作一个白名单并为所有ASCII字/行添加书签,那么非ASCII行将被取消标记

  • 如果文件非常大并且无法选择所有ASCII行,只想选择包含非ASCII字符的行...

regex expression notepad++ non-ascii-characters

136
推荐指数
4
解决办法
21万
查看次数

如何在JavaScript中将长正则表达式拆分为多行?

我有一个很长的正则表达式,我想在我的JavaScript代码中拆分成多行,以根据JSLint规则保持每行长度为80个字符.我认为这对阅读来说更好.这是模式样本:

var pattern = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
Run Code Online (Sandbox Code Playgroud)

javascript regex expression readability jslint

129
推荐指数
6
解决办法
4万
查看次数

在C#中将float转换为int时的奇怪行为

我有以下简单的代码:

int speed1 = (int)(6.2f * 10);
float tmp = 6.2f * 10;
int speed2 = (int)tmp;
Run Code Online (Sandbox Code Playgroud)

speed1和speed2应该具有相同的值,但事实上,我有:

speed1 = 61
speed2 = 62
Run Code Online (Sandbox Code Playgroud)

我知道我应该使用Math.Round而不是cast,但我想了解为什么值不同.

我查看了生成的字节码,但除了存储和加载外,操作码是相同的.

我也在java中尝试了相同的代码,我正确地获得了62和62.

有人可以解释一下吗?

编辑: 在实际代码中,它不是直接6.2f*10而是函数调用*常量.我有以下字节码:

速度1:

IL_01b3:  ldloc.s    V_8
IL_01b5:  callvirt   instance float32 myPackage.MyClass::getSpeed()
IL_01ba:  ldc.r4     10.
IL_01bf:  mul
IL_01c0:  conv.i4
IL_01c1:  stloc.s    V_9
Run Code Online (Sandbox Code Playgroud)

速度2:

IL_01c3:  ldloc.s    V_8
IL_01c5:  callvirt   instance float32 myPackage.MyClass::getSpeed()
IL_01ca:  ldc.r4     10.
IL_01cf:  mul
IL_01d0:  stloc.s    V_10
IL_01d2:  ldloc.s    V_10
IL_01d4:  conv.i4
IL_01d5:  stloc.s    V_11
Run Code Online (Sandbox Code Playgroud)

我们可以看到操作数是浮点数,唯一的区别是stloc/ldloc

至于虚拟机,我尝试使用Mono/Win7,Mono/MacOS和.NET/Windows,结果相同

c# floating-point int expression casting

127
推荐指数
3
解决办法
2万
查看次数

将.net Func <T>转换为.net Expression <Func <T >>

使用方法调用很容易从lambda转到Expression

public void GimmeExpression(Expression<Func<T>> expression)
{
    ((MemberExpression)expression.Body).Member.Name; // "DoStuff"
}

public void SomewhereElse()
{
    GimmeExpression(() => thing.DoStuff());
}
Run Code Online (Sandbox Code Playgroud)

但我想将Func转换为表达式,仅在极少数情况下......

public void ContainTheDanger(Func<T> dangerousCall)
{
    try 
    {
        dangerousCall();
    }
    catch (Exception e)
    {
        // This next line does not work...
        Expression<Func<T>> DangerousExpression = dangerousCall;
        var nameOfDanger = 
            ((MemberExpression)dangerousCall.Body).Member.Name;
        throw new DangerContainer(
            "Danger manifested while " + nameOfDanger, e);
    }
}

public void SomewhereElse()
{
    ContainTheDanger(() => thing.CrossTheStreams());
}
Run Code Online (Sandbox Code Playgroud)

不起作用的行给了我编译时错误Cannot implicitly convert type 'System.Func<T>' to 'System.Linq.Expressions.Expression<System.Func<T>>'.显式强制转换无法解决问题.我有一个设施可以做到这一点吗?

.net c# lambda expression func

113
推荐指数
7
解决办法
6万
查看次数

正则表达式匹配单词或其前缀

我想在整个单词上匹配正则表达式.

在下面的例子中,我试图匹配s或者season我匹配的s,ea,on.

[s|season]
Run Code Online (Sandbox Code Playgroud)

如何使正则表达式匹配整个单词?

regex expression cpu-word

108
推荐指数
3
解决办法
37万
查看次数

在Python中使用lambda表达式进行赋值

我有一个对象列表,我想删除所有空的对象,除了一个,使用filterlambda表达式.

例如,如果输入是:

[Object(name=""), Object(name="fake_name"), Object(name="")]
Run Code Online (Sandbox Code Playgroud)

...那么输出应该是:

[Object(name=""), Object(name="fake_name")]
Run Code Online (Sandbox Code Playgroud)

有没有办法为lambda表达式添加赋值?例如:

flag = True 
input = [Object(name=""), Object(name="fake_name"), Object(name="")] 
output = filter(
    (lambda o: [flag or bool(o.name), flag = flag and bool(o.name)][0]),
    input
)
Run Code Online (Sandbox Code Playgroud)

python lambda expression variable-assignment

94
推荐指数
11
解决办法
9万
查看次数

使用Swift if let with logical AND operator &&

我们知道我们可以使用if let语句作为速记来检查可选的nil然后解包.

但是,我想使用逻辑AND运算符将其与另一个表达式相结合&&.

因此,例如,在这里,我执行可选链接以解包并可选地将我的rootViewController向下转换为tabBarController.但是我没有嵌套if语句,而是将它们组合起来.

if let tabBarController = window!.rootViewController as? UITabBarController {
    if tabBarController.viewControllers.count > 0 {
        println("do stuff")
     }
 }
Run Code Online (Sandbox Code Playgroud)

综合给予:

if let tabBarController = window!.rootViewController as? UITabBarController &&
    tabBarController.viewControllers.count > 0 {
        println("do stuff")
     }
}
Run Code Online (Sandbox Code Playgroud)

上面给出了编译错误使用未解析的标识符'tabBarController'

简化:

if let tabBarController = window!.rootViewController as? UITabBarController && true {
   println("do stuff")
}
Run Code Online (Sandbox Code Playgroud)

这给出了编译错误条件绑定中的Bound值必须是Optional类型.尝试了各种语法变体后,每个都会产生不同的编译错误.我还没有找到订单和括号的获胜组合.

所以,问题是,是否可能,如果是这样,什么是正确的语法?

请注意,我想与做这个if说法不是一个switch语句或三元?运营商.

expression swift

85
推荐指数
4
解决办法
3万
查看次数

使用if(!!(expr))而不是if(expr)

在阅读德州仪器为其SensorTag提供的示例代码时,我遇到了以下片段.

void SensorTagIO_processCharChangeEvt(uint8_t paramID) { 
    ...

    if (!!(ioValue & IO_DATA_LED1)) {
        PIN_setOutputValue(hGpioPin, Board_LED1, Board_LED_ON);
    } else {
        PIN_setOutputValue(hGpioPin, Board_LED1, Board_LED_OFF);
    }

    if (!!(ioValue & IO_DATA_LED2)) {
        PIN_setOutputValue(hGpioPin, Board_LED2, Board_LED_ON);
    } else {
        PIN_setOutputValue(hGpioPin, Board_LED2, Board_LED_OFF);
    }

    if (!!((ioValue & IO_DATA_BUZZER))) {
        Clock_start(buzzClockHandle);
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

声明就像这样(在同一个文件中).

#define IO_DATA_LED1   0x01
static uint8_t ioValue;
Run Code Online (Sandbox Code Playgroud)

是否if (!!(ioValue & IO_DATA_LED1))提供任何优势if (ioValue & IO_DATA_LED1)

c expression

66
推荐指数
3
解决办法
3717
查看次数

JavaScript表达式,在每种情况下生成一个5位数字

对于我的硒测试,我需要一个价值提供者来获得每个案例的5位数字.javascript的问题是api Math.random只支持生成一个0.起始浮点数.所以它必须介于10000和之间99999.

因此,如果它只会生成0.10000和更高,但它也会生成,这将很容易0.01000.所以这种方法没有成功:

Math.floor(Math.random()*100000+1)
Run Code Online (Sandbox Code Playgroud)

是否有可能在每种情况下生成一个5位数字(在表达式中!)?

javascript random expression digit

60
推荐指数
4
解决办法
8万
查看次数

如何使用表达式设置属性值?

给出以下方法:

public static void SetPropertyValue(object target, string propName, object value)
{
    var propInfo = target.GetType().GetProperty(propName,
                         BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.DeclaredOnly);

    if (propInfo == null)
        throw new ArgumentOutOfRangeException("propName", "Property not found on target");
    else
        propInfo.SetValue(target, value, null);
}
Run Code Online (Sandbox Code Playgroud)

如何编写它的表达式启用等效而无需为目标传递额外的参数?

为什么这样做而不是直接设置属性我可以听到你说.例如,假设我们有以下类,其属性具有公共getter但私有setter:

public class Customer 
{
   public string Title {get; private set;}
   public string Name {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

我希望能够致电:

var myCustomerInstance = new Customer();
SetPropertyValue<Customer>(cust => myCustomerInstance.Title, "Mr");
Run Code Online (Sandbox Code Playgroud)

现在这里是一些示例代码.

public static void SetPropertyValue<T>(Expression<Func<T, Object>> memberLamda , object value)
{
    MemberExpression memberSelectorExpression; …
Run Code Online (Sandbox Code Playgroud)

c# linq expression

59
推荐指数
1
解决办法
4万
查看次数